package cn.jia.spring2.pojo.InterfaceImpl;

import cn.jia.spring2.pojo.myInterface.CompactDisc;
import cn.jia.spring2.pojo.myInterface.Media;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * Created by jia on 2018/3/28.
 */
@Component
public class MediaCD implements Media{
    private CompactDisc compactDisc;
    //@Autowired
    //@Autowired(required = false)  //设置为false在产生歧义时是不会装配的，但是注入的对象会空指针
    //如果CompactDisc有两个实现类的话，使用@Autowired则会产生歧义，会抛出异常
    public MediaCD(CompactDisc compactDisc){
        System.out.println(compactDisc);
        this.compactDisc=compactDisc;
    }
    //由于使用了@Authowired注解，所以在启动时spring会进行扫描，读取Autowired注解，自动装配compactDisc
    //并执行注解下面的方法，也可以是set方法，或其他方法
    public MediaCD(){
        System.out.println();
    }

    public void setCompactDisc(CompactDisc compactDisc) {
        this.compactDisc = compactDisc;
    }

    @Override
    public void play() {
        compactDisc.play();
        System.out.println("MediaCD");
    }
}
